<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arduino FDK AAC Encoder and Decoder Library: aac_fdk::AACEncoderFDK Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Arduino FDK AAC Encoder and Decoder Library
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceaac__fdk.html">aac_fdk</a></li><li class="navelem"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html">AACEncoderFDK</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classaac__fdk_1_1_a_a_c_encoder_f_d_k-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">aac_fdk::AACEncoderFDK Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Encodes PCM data to the AAC format and writes the result to a stream.  
 <a href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_a_a_c_encoder_f_d_k_8h_source.html">AACEncoderFDK.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa49f0660443ab9cb98411668d0d42277"><td class="memItemLeft" align="right" valign="top"><a id="aa49f0660443ab9cb98411668d0d42277"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>AACEncoderFDK</b> (AACCallbackFDK cb=nullptr)</td></tr>
<tr class="separator:aa49f0660443ab9cb98411668d0d42277"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6df4c0b07a044e3f40151f0c9099eeeb"><td class="memItemLeft" align="right" valign="top"><a id="a6df4c0b07a044e3f40151f0c9099eeeb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDataCallback</b> (AACCallbackFDK cb)</td></tr>
<tr class="separator:a6df4c0b07a044e3f40151f0c9099eeeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb77100774c4e7009e1364d9306ed77d"><td class="memItemLeft" align="right" valign="top"><a id="aeb77100774c4e7009e1364d9306ed77d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>AACEncoderFDK</b> (Stream &amp;out_stream)</td></tr>
<tr class="separator:aeb77100774c4e7009e1364d9306ed77d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afca1e373837585b1dd2931abfe34291e"><td class="memItemLeft" align="right" valign="top"><a id="afca1e373837585b1dd2931abfe34291e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#afca1e373837585b1dd2931abfe34291e">setStream</a> (Stream &amp;out_stream)</td></tr>
<tr class="memdesc:afca1e373837585b1dd2931abfe34291e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the output stream. <br /></td></tr>
<tr class="separator:afca1e373837585b1dd2931abfe34291e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4de21579d1ca245fc8e6bb4a08c33eee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a4de21579d1ca245fc8e6bb4a08c33eee">~AACEncoderFDK</a> ()</td></tr>
<tr class="separator:a4de21579d1ca245fc8e6bb4a08c33eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a139afb5f310cf44082d7ab24587e6b2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a139afb5f310cf44082d7ab24587e6b2d">setBitrate</a> (int bitrate)</td></tr>
<tr class="separator:a139afb5f310cf44082d7ab24587e6b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d561b344e2f4330a8fb122df8667680"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a5d561b344e2f4330a8fb122df8667680">setAudioObjectType</a> (int aot)</td></tr>
<tr class="separator:a5d561b344e2f4330a8fb122df8667680"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74ffe6e2cbd95f2f133891d71b663b91"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a74ffe6e2cbd95f2f133891d71b663b91">setAfterburner</a> (bool afterburner)</td></tr>
<tr class="separator:a74ffe6e2cbd95f2f133891d71b663b91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d70cf748ff889b6d48844bc19422233"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a3d70cf748ff889b6d48844bc19422233">setSpecialBandReplication</a> (int eld_sbr)</td></tr>
<tr class="separator:a3d70cf748ff889b6d48844bc19422233"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d86a16c721b233f2c6a29e5ed7b0032"><td class="memItemLeft" align="right" valign="top"><a id="a2d86a16c721b233f2c6a29e5ed7b0032"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setVariableBitrateMode</b> (int vbr)</td></tr>
<tr class="separator:a2d86a16c721b233f2c6a29e5ed7b0032"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2506151ac71bbe8643392e3fd93580f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#ab2506151ac71bbe8643392e3fd93580f">setOutputBufferSize</a> (int outbuf_size)</td></tr>
<tr class="memdesc:ab2506151ac71bbe8643392e3fd93580f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Output Buffer Size object.  <a href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#ab2506151ac71bbe8643392e3fd93580f">More...</a><br /></td></tr>
<tr class="separator:ab2506151ac71bbe8643392e3fd93580f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a149f9c4c7709207e8e69adef3e5fc3dc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a149f9c4c7709207e8e69adef3e5fc3dc">begin</a> (<a class="el" href="structaac__fdk_1_1_audio_info.html">AudioInfo</a> info)</td></tr>
<tr class="memdesc:a149f9c4c7709207e8e69adef3e5fc3dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the encoder <br  />
  <a href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a149f9c4c7709207e8e69adef3e5fc3dc">More...</a><br /></td></tr>
<tr class="separator:a149f9c4c7709207e8e69adef3e5fc3dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac57d09c1eaacaa1d0d3f21d6176bbc6d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#ac57d09c1eaacaa1d0d3f21d6176bbc6d">begin</a> (int input_channels, int input_sample_rate, int input_bits_per_sample)</td></tr>
<tr class="memdesc:ac57d09c1eaacaa1d0d3f21d6176bbc6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the encoder <br  />
  <a href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#ac57d09c1eaacaa1d0d3f21d6176bbc6d">More...</a><br /></td></tr>
<tr class="separator:ac57d09c1eaacaa1d0d3f21d6176bbc6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb8128d510f2725e8882da0c17d08ad"><td class="memItemLeft" align="right" valign="top"><a id="aabb8128d510f2725e8882da0c17d08ad"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#aabb8128d510f2725e8882da0c17d08ad">write</a> (void *in_ptr, int in_size)</td></tr>
<tr class="memdesc:aabb8128d510f2725e8882da0c17d08ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">write PCM data to be converted to AAC - The size is in bytes <br /></td></tr>
<tr class="separator:aabb8128d510f2725e8882da0c17d08ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27ead9666fafba6c8d8b2778051100ff"><td class="memItemLeft" align="right" valign="top"><a id="a27ead9666fafba6c8d8b2778051100ff"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a27ead9666fafba6c8d8b2778051100ff">end</a> ()</td></tr>
<tr class="memdesc:a27ead9666fafba6c8d8b2778051100ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">closes the processing and release resources <br /></td></tr>
<tr class="separator:a27ead9666fafba6c8d8b2778051100ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac63b02c223159b40fc1836ee685eeb2f"><td class="memItemLeft" align="right" valign="top"><a id="ac63b02c223159b40fc1836ee685eeb2f"></a>
UINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#ac63b02c223159b40fc1836ee685eeb2f">getParameter</a> (const <a class="el" href="namespaceaac__fdk.html#a89203346d61af32bc4db4f704267ce46">AACENC_PARAM</a> param)</td></tr>
<tr class="memdesc:ac63b02c223159b40fc1836ee685eeb2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">determines a decoder parameter <br /></td></tr>
<tr class="separator:ac63b02c223159b40fc1836ee685eeb2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a975bb9970cdcf8616c91ea4ca95ae8af"><td class="memItemLeft" align="right" valign="top"><a id="a975bb9970cdcf8616c91ea4ca95ae8af"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a975bb9970cdcf8616c91ea4ca95ae8af">setParameter</a> (<a class="el" href="namespaceaac__fdk.html#a89203346d61af32bc4db4f704267ce46">AACENC_PARAM</a> param, uint32_t value)</td></tr>
<tr class="memdesc:a975bb9970cdcf8616c91ea4ca95ae8af"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets an encoder parameter <br /></td></tr>
<tr class="separator:a975bb9970cdcf8616c91ea4ca95ae8af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab9772a80ef4697883785216bc36e2dc7"><td class="memItemLeft" align="right" valign="top"><a id="ab9772a80ef4697883785216bc36e2dc7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#ab9772a80ef4697883785216bc36e2dc7">setAudioInfo</a> (<a class="el" href="structaac__fdk_1_1_audio_info.html">AudioInfo</a> from)</td></tr>
<tr class="memdesc:ab9772a80ef4697883785216bc36e2dc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the Audio Info. <br /></td></tr>
<tr class="separator:ab9772a80ef4697883785216bc36e2dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafcbbffed72b8e912f474745ca827b81"><td class="memItemLeft" align="right" valign="top"><a id="aafcbbffed72b8e912f474745ca827b81"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#aafcbbffed72b8e912f474745ca827b81">setup</a> ()</td></tr>
<tr class="memdesc:aafcbbffed72b8e912f474745ca827b81"><td class="mdescLeft">&#160;</td><td class="mdescRight">starts the processing <br /></td></tr>
<tr class="separator:aafcbbffed72b8e912f474745ca827b81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc4749b8560dbc95aeed2ca2ec4d78a1"><td class="memItemLeft" align="right" valign="top"><a id="acc4749b8560dbc95aeed2ca2ec4d78a1"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>updateParams</b> ()</td></tr>
<tr class="separator:acc4749b8560dbc95aeed2ca2ec4d78a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2488de07983d7894e865ed4b5d5a1ce1"><td class="memItemLeft" align="right" valign="top"><a id="a2488de07983d7894e865ed4b5d5a1ce1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaac__fdk_1_1_a_a_c_encoder_f_d_k.html#a2488de07983d7894e865ed4b5d5a1ce1">provideResult</a> (uint8_t *data, size_t len)</td></tr>
<tr class="memdesc:a2488de07983d7894e865ed4b5d5a1ce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the result PWM data <br /></td></tr>
<tr class="separator:a2488de07983d7894e865ed4b5d5a1ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aed8a96911eb0d3da3b5673a831601b0c"><td class="memItemLeft" align="right" valign="top"><a id="aed8a96911eb0d3da3b5673a831601b0c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>vbr</b> = 0</td></tr>
<tr class="separator:aed8a96911eb0d3da3b5673a831601b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a049ff95c14ed73830f779d955acc4516"><td class="memItemLeft" align="right" valign="top"><a id="a049ff95c14ed73830f779d955acc4516"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>bitrate</b> = 64000</td></tr>
<tr class="separator:a049ff95c14ed73830f779d955acc4516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ca33220264204be20b8dbe36be58fe"><td class="memItemLeft" align="right" valign="top"><a id="ae4ca33220264204be20b8dbe36be58fe"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>ch</b> = 0</td></tr>
<tr class="separator:ae4ca33220264204be20b8dbe36be58fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad427d8a83462e3ae7954baca707e1dfb"><td class="memItemLeft" align="right" valign="top"><a id="ad427d8a83462e3ae7954baca707e1dfb"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>infile</b></td></tr>
<tr class="separator:ad427d8a83462e3ae7954baca707e1dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a798c272cc97c9d34ea5328821b252b76"><td class="memItemLeft" align="right" valign="top"><a id="a798c272cc97c9d34ea5328821b252b76"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>wav</b></td></tr>
<tr class="separator:a798c272cc97c9d34ea5328821b252b76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c58342900bf12e0a89a56541f9c5e37"><td class="memItemLeft" align="right" valign="top"><a id="a7c58342900bf12e0a89a56541f9c5e37"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td></tr>
<tr class="separator:a7c58342900bf12e0a89a56541f9c5e37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0967429e3952d2f04fbbf90079dbd74e"><td class="memItemLeft" align="right" valign="top"><a id="a0967429e3952d2f04fbbf90079dbd74e"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>sample_rate</b></td></tr>
<tr class="separator:a0967429e3952d2f04fbbf90079dbd74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a150637fe8b2e2c763c7a737ea74e08bf"><td class="memItemLeft" align="right" valign="top"><a id="a150637fe8b2e2c763c7a737ea74e08bf"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>channels</b></td></tr>
<tr class="separator:a150637fe8b2e2c763c7a737ea74e08bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04d51c139eba61445b69ddd8202658c8"><td class="memItemLeft" align="right" valign="top"><a id="a04d51c139eba61445b69ddd8202658c8"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>bits_per_sample</b></td></tr>
<tr class="separator:a04d51c139eba61445b69ddd8202658c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e917a2a7c7e9cdfa9c3c6099604d182"><td class="memItemLeft" align="right" valign="top"><a id="a1e917a2a7c7e9cdfa9c3c6099604d182"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>input_size</b></td></tr>
<tr class="separator:a1e917a2a7c7e9cdfa9c3c6099604d182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af99d4ff213295d2665f38f7209628a00"><td class="memItemLeft" align="right" valign="top"><a id="af99d4ff213295d2665f38f7209628a00"></a>
uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>input_buf</b> = nullptr</td></tr>
<tr class="separator:af99d4ff213295d2665f38f7209628a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53df24cc3d2ee991bfb77315d2f39d54"><td class="memItemLeft" align="right" valign="top"><a id="a53df24cc3d2ee991bfb77315d2f39d54"></a>
int16_t *&#160;</td><td class="memItemRight" valign="bottom"><b>convert_buf</b> = nullptr</td></tr>
<tr class="separator:a53df24cc3d2ee991bfb77315d2f39d54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fd7ccfd1425716c7f254d7f29ea15ba"><td class="memItemLeft" align="right" valign="top"><a id="a2fd7ccfd1425716c7f254d7f29ea15ba"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>aot</b> = 2</td></tr>
<tr class="separator:a2fd7ccfd1425716c7f254d7f29ea15ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a524a381b9f562db5988106fed1dcd1f2"><td class="memItemLeft" align="right" valign="top"><a id="a524a381b9f562db5988106fed1dcd1f2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>afterburner</b> = true</td></tr>
<tr class="separator:a524a381b9f562db5988106fed1dcd1f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ba11f1c5806b6fbd4a197de4b71a3b1"><td class="memItemLeft" align="right" valign="top"><a id="a8ba11f1c5806b6fbd4a197de4b71a3b1"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>eld_sbr</b> = 0</td></tr>
<tr class="separator:a8ba11f1c5806b6fbd4a197de4b71a3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8faab1c233f48e39ebe7d753b7d12d9"><td class="memItemLeft" align="right" valign="top"><a id="aa8faab1c233f48e39ebe7d753b7d12d9"></a>
HANDLE_AACENCODER&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b></td></tr>
<tr class="separator:aa8faab1c233f48e39ebe7d753b7d12d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeac3d404c44082cde07d849359728eb"><td class="memItemLeft" align="right" valign="top"><a id="aeeac3d404c44082cde07d849359728eb"></a>
CHANNEL_MODE&#160;</td><td class="memItemRight" valign="bottom"><b>mode</b></td></tr>
<tr class="separator:aeeac3d404c44082cde07d849359728eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2addcfd5ac767bd24e8063a0c4eb5d5"><td class="memItemLeft" align="right" valign="top"><a id="af2addcfd5ac767bd24e8063a0c4eb5d5"></a>
AACENC_InfoStruct&#160;</td><td class="memItemRight" valign="bottom"><b>info</b> = { 0 }</td></tr>
<tr class="separator:af2addcfd5ac767bd24e8063a0c4eb5d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07000604c5835d313d066b5b5a25c24e"><td class="memItemLeft" align="right" valign="top"><a id="a07000604c5835d313d066b5b5a25c24e"></a>
AACENC_BufDesc&#160;</td><td class="memItemRight" valign="bottom"><b>in_buf</b> = { 0 }</td></tr>
<tr class="separator:a07000604c5835d313d066b5b5a25c24e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0fd2eddafc34f4eceefc7897a274932"><td class="memItemLeft" align="right" valign="top"><a id="ab0fd2eddafc34f4eceefc7897a274932"></a>
AACENC_BufDesc&#160;</td><td class="memItemRight" valign="bottom"><b>out_buf</b> = { 0 }</td></tr>
<tr class="separator:ab0fd2eddafc34f4eceefc7897a274932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7236e31ddc83fe8cfe420fd5e55fa46"><td class="memItemLeft" align="right" valign="top"><a id="af7236e31ddc83fe8cfe420fd5e55fa46"></a>
AACENC_InArgs&#160;</td><td class="memItemRight" valign="bottom"><b>in_args</b> = { 0 }</td></tr>
<tr class="separator:af7236e31ddc83fe8cfe420fd5e55fa46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa2934a2112e24e06ff5b120bf5d7989"><td class="memItemLeft" align="right" valign="top"><a id="aaa2934a2112e24e06ff5b120bf5d7989"></a>
AACENC_OutArgs&#160;</td><td class="memItemRight" valign="bottom"><b>out_args</b> = { 0 }</td></tr>
<tr class="separator:aaa2934a2112e24e06ff5b120bf5d7989"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8226748b04b1479f9c7414a8ab9f3a15"><td class="memItemLeft" align="right" valign="top"><a id="a8226748b04b1479f9c7414a8ab9f3a15"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>in_identifier</b> = IN_AUDIO_DATA</td></tr>
<tr class="separator:a8226748b04b1479f9c7414a8ab9f3a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab81bf87628a6834653ca3f2f0623f23f"><td class="memItemLeft" align="right" valign="top"><a id="ab81bf87628a6834653ca3f2f0623f23f"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>in_elem_size</b></td></tr>
<tr class="separator:ab81bf87628a6834653ca3f2f0623f23f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b80f061889a4074b65919e8c2e59354"><td class="memItemLeft" align="right" valign="top"><a id="a2b80f061889a4074b65919e8c2e59354"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>out_identifier</b> = OUT_BITSTREAM_DATA</td></tr>
<tr class="separator:a2b80f061889a4074b65919e8c2e59354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43128ca2b3b36a23a5b56fc2a434fb89"><td class="memItemLeft" align="right" valign="top"><a id="a43128ca2b3b36a23a5b56fc2a434fb89"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>out_elem_size</b></td></tr>
<tr class="separator:a43128ca2b3b36a23a5b56fc2a434fb89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7525b91fce6cf6833eae7ffe7acf97f6"><td class="memItemLeft" align="right" valign="top"><a id="a7525b91fce6cf6833eae7ffe7acf97f6"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>in_ptr</b></td></tr>
<tr class="separator:a7525b91fce6cf6833eae7ffe7acf97f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab132a412e91d0f0e7f50466ab5d50dd4"><td class="memItemLeft" align="right" valign="top"><a id="ab132a412e91d0f0e7f50466ab5d50dd4"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>out_ptr</b></td></tr>
<tr class="separator:ab132a412e91d0f0e7f50466ab5d50dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9dd1f96546569dbb758eafbd7a0a9f3"><td class="memItemLeft" align="right" valign="top"><a id="ad9dd1f96546569dbb758eafbd7a0a9f3"></a>
uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>outbuf</b></td></tr>
<tr class="separator:ad9dd1f96546569dbb758eafbd7a0a9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab44949ffab663b0546d2ba379429851d"><td class="memItemLeft" align="right" valign="top"><a id="ab44949ffab663b0546d2ba379429851d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>out_size</b> = 20480</td></tr>
<tr class="separator:ab44949ffab663b0546d2ba379429851d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a195850fe429ae367a50c4844d708c89e"><td class="memItemLeft" align="right" valign="top"><a id="a195850fe429ae367a50c4844d708c89e"></a>
AACENC_ERROR&#160;</td><td class="memItemRight" valign="bottom"><b>err</b></td></tr>
<tr class="separator:a195850fe429ae367a50c4844d708c89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f996cda917808396c88f6ef3cfe593c"><td class="memItemLeft" align="right" valign="top"><a id="a1f996cda917808396c88f6ef3cfe593c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>active</b></td></tr>
<tr class="separator:a1f996cda917808396c88f6ef3cfe593c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaecdf8f12fd5c16050013f2bf834579"><td class="memItemLeft" align="right" valign="top"><a id="afaecdf8f12fd5c16050013f2bf834579"></a>
AACCallbackFDK&#160;</td><td class="memItemRight" valign="bottom"><b>aacCallback</b> =nullptr</td></tr>
<tr class="separator:afaecdf8f12fd5c16050013f2bf834579"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab33a7a4e3cfc2dc5c439bca43964957f"><td class="memItemLeft" align="right" valign="top"><a id="ab33a7a4e3cfc2dc5c439bca43964957f"></a>
Stream *&#160;</td><td class="memItemRight" valign="bottom"><b>out</b></td></tr>
<tr class="separator:ab33a7a4e3cfc2dc5c439bca43964957f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Encodes PCM data to the AAC format and writes the result to a stream. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4de21579d1ca245fc8e6bb4a08c33eee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4de21579d1ca245fc8e6bb4a08c33eee">&#9670;&nbsp;</a></span>~AACEncoderFDK()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">aac_fdk::AACEncoderFDK::~AACEncoderFDK </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Total encoder bitrate. This parameter is <br  />
 mandatory and interacts with <a class="el" href="namespaceaac__fdk.html#a89203346d61af32bc4db4f704267ce46ab3614c14ad440d41eaa17e87582cbad1">AACENC_BITRATEMODE</a>.</p><ul>
<li>CBR: Bitrate in bits/second.</li>
<li>VBR: Variable bitrate. Bitrate argument will be ignored. See suppBitrates for details. </li>
</ul>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a149f9c4c7709207e8e69adef3e5fc3dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a149f9c4c7709207e8e69adef3e5fc3dc">&#9670;&nbsp;</a></span>begin() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::begin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaac__fdk_1_1_audio_info.html">AudioInfo</a>&#160;</td>
          <td class="paramname"><em>info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Opens the encoder <br  />
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">info</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>int </dd></dl>

</div>
</div>
<a id="ac57d09c1eaacaa1d0d3f21d6176bbc6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac57d09c1eaacaa1d0d3f21d6176bbc6d">&#9670;&nbsp;</a></span>begin() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::begin </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>input_channels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>input_sample_rate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>input_bits_per_sample</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Opens the encoder <br  />
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input_channels</td><td></td></tr>
    <tr><td class="paramname">input_sample_rate</td><td></td></tr>
    <tr><td class="paramname">input_bits_per_sample</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>int 0 =&gt; ok; error with negative number </dd></dl>

</div>
</div>
<a id="a74ffe6e2cbd95f2f133891d71b663b91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74ffe6e2cbd95f2f133891d71b663b91">&#9670;&nbsp;</a></span>setAfterburner()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::setAfterburner </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>afterburner</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Configure SBR independently of the chosen Audio Object Type ::AUDIO_OBJECT_TYPE. This parameter is for ELD audio object type only.</p><ul>
<li>-1: Use ELD SBR auto configurator (default).</li>
<li>0: Disable Spectral Band Replication.</li>
<li>1: Enable Spectral Band Replication. </li>
</ul>

</div>
</div>
<a id="a5d561b344e2f4330a8fb122df8667680"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d561b344e2f4330a8fb122df8667680">&#9670;&nbsp;</a></span>setAudioObjectType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::setAudioObjectType </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>aot</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This parameter controls the use of the afterburner feature. The afterburner is a type of analysis by synthesis algorithm which increases the audio quality but also the required processing power. It is recommended to always activate this if additional memory consumption and processing power consumption is not a problem. If increased MHz and memory consumption are an issue then the MHz and memory cost of this optional module need to be evaluated against the improvement in audio quality on a case by case basis.</p><ul>
<li>0: Disable afterburner (default).</li>
<li>1: Enable afterburner. </li>
</ul>

</div>
</div>
<a id="a139afb5f310cf44082d7ab24587e6b2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a139afb5f310cf44082d7ab24587e6b2d">&#9670;&nbsp;</a></span>setBitrate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::setBitrate </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bitrate</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Audio object type. See ::AUDIO_OBJECT_TYPE in FDK_audio.h.</p><ul>
<li>2: MPEG-4 AAC Low Complexity.</li>
<li>5: MPEG-4 AAC Low Complexity with Spectral Band Replication (HE-AAC).</li>
<li>29: MPEG-4 AAC Low Complexity with Spectral Band Replication and Parametric Stereo (HE-AAC v2). This configuration can be used only with stereo input audio data.</li>
<li>23: MPEG-4 AAC Low-Delay.</li>
<li>39: MPEG-4 AAC Enhanced Low-Delay. Since there is no ::AUDIO_OBJECT_TYPE for ELD in combination with SBR defined, enable SBR explicitely by <a class="el" href="namespaceaac__fdk.html#a89203346d61af32bc4db4f704267ce46ae6835699b740abf05b257af9a23d171e">AACENC_SBR_MODE</a> parameter. The ELD v2 212 configuration can be configured by <a class="el" href="namespaceaac__fdk.html#a89203346d61af32bc4db4f704267ce46ad80879a8f31191b3d8537e8a2e7ae8c8">AACENC_CHANNELMODE</a> parameter.</li>
<li>129: MPEG-2 AAC Low Complexity.</li>
<li>132: MPEG-2 AAC Low Complexity with Spectral Band Replication (HE-AAC).</li>
</ul>
<p>Please note that the MPEG-2 AOT's basically disables non-existing Perceptual Noise Substitution tool in AAC encoder and controls the MPEG_ID flag in adts header. The MPEG-2 AOT doesn't prohibit specific transport formats. </p>

</div>
</div>
<a id="ab2506151ac71bbe8643392e3fd93580f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2506151ac71bbe8643392e3fd93580f">&#9670;&nbsp;</a></span>setOutputBufferSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::setOutputBufferSize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>outbuf_size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the Output Buffer Size object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">outbuf_size</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3d70cf748ff889b6d48844bc19422233"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d70cf748ff889b6d48844bc19422233">&#9670;&nbsp;</a></span>setSpecialBandReplication()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aac_fdk::AACEncoderFDK::setSpecialBandReplication </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>eld_sbr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Bitrate mode. Configuration can be different kind of bitrate configurations:</p><ul>
<li>0: Constant bitrate, use bitrate according to <a class="el" href="namespaceaac__fdk.html#a89203346d61af32bc4db4f704267ce46a3d5cc7ebd03bcdfc77b95878bf26432d">AACENC_BITRATE</a>. (default) Within none LD/ELD ::AUDIO_OBJECT_TYPE, the CBR mode makes use of full allowed bitreservoir. In contrast, at Low-Delay ::AUDIO_OBJECT_TYPE the bitreservoir is kept very small.</li>
<li>1: Variable bitrate mode, very low bitrate.</li>
<li>2: Variable bitrate mode, low bitrate.</li>
<li>3: Variable bitrate mode, medium bitrate.</li>
<li>4: Variable bitrate mode, high bitrate.</li>
<li>5: Variable bitrate mode, very high bitrate. </li>
</ul>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/<a class="el" href="_a_a_c_encoder_f_d_k_8h_source.html">AACEncoderFDK.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
